leetcode-Remove Duplicates from an Array (ES6)


Posted by hoyi-23 on 2021-07-25

建立新陣列來解的方法: 文章看這


題目:
必須移除陣列中重複的數字(此鎮列為排序好的陣列),然後回傳新的陣列的長度
不允許建立新的陣列。必須透過回傳一個固定的數字,來表示陣列的長度。

理解:
這邊我們會有一個排序好的陣列,排序好的意思是: 相同的數字會排在一起。
執行時注意有可能是空陣列或長度小於2(代表僅有一個數)
我們要回傳一個沒有重複數值的陣列長度。

實作邏輯:

  1. 若原本長度小於2,直接回傳
  2. 若後者數值與前者數值相同,使用splice()刪除後者

var removeDuplicates = function(nums) {
    const length = nums.length

    if (length < 2) {
        return length
    }

    let i = 1
    while (i < nums.length) {
        if (nums[i] === nums[i-1]) {
            nums.splice(i, 1)
        } else {
            i++
        }
    }

    return nums.length
};

console.log(removeDuplicates([1,2,2,3,4,4]))

Splice()參考文章


#Leetcode







Related Posts

Ceres 函式庫簡介

Ceres 函式庫簡介

JS 展開  (Spread Operator) 以及反向展開 (Rest Parameters)

JS 展開 (Spread Operator) 以及反向展開 (Rest Parameters)

設計模式 7 Day 目錄

設計模式 7 Day 目錄


Comments